{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Captial Bikeshare 数据线性回归分析\n",
    "数据由Capital Bikeshare （美国 Washington, D.C.的一个共享单车公司）提供2011和2012的每天共享单车的数量。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 导入必要的工具包"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np # linear algebra\n",
    "import pandas as pd # data processing, CSV file I/O\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 读取数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>yr</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.344167</td>\n",
       "      <td>0.805833</td>\n",
       "      <td>0.160446</td>\n",
       "      <td>985</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.363478</td>\n",
       "      <td>0.696087</td>\n",
       "      <td>0.248539</td>\n",
       "      <td>801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.196364</td>\n",
       "      <td>0.437273</td>\n",
       "      <td>0.248309</td>\n",
       "      <td>1349</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.200000</td>\n",
       "      <td>0.590435</td>\n",
       "      <td>0.160296</td>\n",
       "      <td>1562</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.226957</td>\n",
       "      <td>0.436957</td>\n",
       "      <td>0.186900</td>\n",
       "      <td>1600</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   yr  workingday  weathersit      temp       hum  windspeed   cnt\n",
       "0   0           0           2  0.344167  0.805833   0.160446   985\n",
       "1   0           0           2  0.363478  0.696087   0.248539   801\n",
       "2   0           1           1  0.196364  0.437273   0.248309  1349\n",
       "3   0           1           1  0.200000  0.590435   0.160296  1562\n",
       "4   0           1           1  0.226957  0.436957   0.186900  1600"
      ]
     },
     "execution_count": 100,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# path to where the data lies\n",
    "dpath = './data/'\n",
    "data = pd.read_csv(dpath + 'day.csv')\n",
    "\n",
    "#删除一些不必要的特征\n",
    "del data['instant']\n",
    "del data['season']\n",
    "del data['mnth']\n",
    "del data['dteday']\n",
    "del data['casual']\n",
    "del data['registered']\n",
    "#根据生活经验，temp 和 atemp 是相似特征，可取其中一个\n",
    "del data['atemp']\n",
    "\n",
    "#workingday 、weekday 、holiday可以只取一个,这里只保留 workingday\n",
    "del data['weekday']\n",
    "del data['holiday']\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(731, 7)"
      ]
     },
     "execution_count": 101,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数据基本信息"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 731 entries, 0 to 730\n",
      "Data columns (total 7 columns):\n",
      "yr            731 non-null int64\n",
      "workingday    731 non-null int64\n",
      "weathersit    731 non-null int64\n",
      "temp          731 non-null float64\n",
      "hum           731 non-null float64\n",
      "windspeed     731 non-null float64\n",
      "cnt           731 non-null int64\n",
      "dtypes: float64(3), int64(4)\n",
      "memory usage: 40.1 KB\n"
     ]
    }
   ],
   "source": [
    "data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "yr            0\n",
       "workingday    0\n",
       "weathersit    0\n",
       "temp          0\n",
       "hum           0\n",
       "windspeed     0\n",
       "cnt           0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 103,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "### 查看是否有空值\n",
    "data.isnull().sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 特征工程及数据探索"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 探索数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>yr</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>0.500684</td>\n",
       "      <td>0.683995</td>\n",
       "      <td>1.395349</td>\n",
       "      <td>0.495385</td>\n",
       "      <td>0.627894</td>\n",
       "      <td>0.190486</td>\n",
       "      <td>4504.348837</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.500342</td>\n",
       "      <td>0.465233</td>\n",
       "      <td>0.544894</td>\n",
       "      <td>0.183051</td>\n",
       "      <td>0.142429</td>\n",
       "      <td>0.077498</td>\n",
       "      <td>1937.211452</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.059130</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.022392</td>\n",
       "      <td>22.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.337083</td>\n",
       "      <td>0.520000</td>\n",
       "      <td>0.134950</td>\n",
       "      <td>3152.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.498333</td>\n",
       "      <td>0.626667</td>\n",
       "      <td>0.180975</td>\n",
       "      <td>4548.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.655417</td>\n",
       "      <td>0.730209</td>\n",
       "      <td>0.233214</td>\n",
       "      <td>5956.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>0.861667</td>\n",
       "      <td>0.972500</td>\n",
       "      <td>0.507463</td>\n",
       "      <td>8714.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               yr  workingday  weathersit        temp         hum   windspeed  \\\n",
       "count  731.000000  731.000000  731.000000  731.000000  731.000000  731.000000   \n",
       "mean     0.500684    0.683995    1.395349    0.495385    0.627894    0.190486   \n",
       "std      0.500342    0.465233    0.544894    0.183051    0.142429    0.077498   \n",
       "min      0.000000    0.000000    1.000000    0.059130    0.000000    0.022392   \n",
       "25%      0.000000    0.000000    1.000000    0.337083    0.520000    0.134950   \n",
       "50%      1.000000    1.000000    1.000000    0.498333    0.626667    0.180975   \n",
       "75%      1.000000    1.000000    2.000000    0.655417    0.730209    0.233214   \n",
       "max      1.000000    1.000000    3.000000    0.861667    0.972500    0.507463   \n",
       "\n",
       "               cnt  \n",
       "count   731.000000  \n",
       "mean   4504.348837  \n",
       "std    1937.211452  \n",
       "min      22.000000  \n",
       "25%    3152.000000  \n",
       "50%    4548.000000  \n",
       "75%    5956.000000  \n",
       "max    8714.000000  "
      ]
     },
     "execution_count": 104,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "## 各属性的统计特性\n",
    "data.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 单变量分布分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/fei/.local/lib/python3.6/site-packages/matplotlib/axes/_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.\n",
      "  warnings.warn(\"The 'normed' kwarg is deprecated, and has been \"\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 目标y（共享单车数量）的直方图／分布\n",
    "fig = plt.figure()\n",
    "sns.distplot(data.cnt.values, bins=30, kde=True)\n",
    "plt.xlabel('Cnt value of bikeshare', fontsize=12)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 输入属性的直方图／分布"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/fei/.local/lib/python3.6/site-packages/matplotlib/axes/_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.\n",
      "  warnings.warn(\"The 'normed' kwarg is deprecated, and has been \"\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# windspeed（风速） 的直方图\n",
    "fig = plt.figure()\n",
    "sns.distplot(data.windspeed.values, bins=30, kde=False)\n",
    "plt.xlabel('windspeed rate', fontsize=12)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/fei/.local/lib/python3.6/site-packages/matplotlib/axes/_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.\n",
      "  warnings.warn(\"The 'normed' kwarg is deprecated, and has been \"\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#hum（湿度）直方图\n",
    "fig = plt.figure()\n",
    "sns.distplot(data.hum.values, bins=30, kde=False)\n",
    "plt.xlabel('hum rate', fontsize=12)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/fei/.local/lib/python3.6/site-packages/matplotlib/axes/_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.\n",
      "  warnings.warn(\"The 'normed' kwarg is deprecated, and has been \"\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#temp(气温) 直方图\n",
    "fig = plt.figure()\n",
    "sns.distplot(data.temp.values, bins=30, kde=False)\n",
    "plt.xlabel('temp rate', fontsize=12)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# weathersit (天气)\n",
    "sns.countplot(data.weathersit, order=[1,2,3,4]);\n",
    "plt.xlabel('weathersit');\n",
    "plt.ylabel('Number of occurrences');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# workingday (是否工作日) 直方图\n",
    "sns.countplot(data.workingday, order=[0,1]);\n",
    "plt.xlabel('workingday');\n",
    "plt.ylabel('Number of occurrences');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 两两特征之间的相关性"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [],
   "source": [
    "#get the names of all the columns\n",
    "cols=data.columns\n",
    "\n",
    "# Calculates pearson co-efficient for all combinations，通常认为相关系数大于0.5的为强相关\n",
    "data_corr = data.corr().abs()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(7, 7)"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_corr.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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apOzXxlkzcMda4z5wIuxiYiIiIj8I+edlmCM6UnWnNv9wCCgt7U23RjjALYCfbwbooiIiIhccH6cF+tNnsy5LQ50ttbuyr3TWptpjAmtR/iIiIiISEA77+DWWvu3t2haazdd2HBERERExCcyg3N5tJB//K6IiIiIBA9PpiWIiIiISLAJ0jm3ytyKiIiISNBQ5lZEREQkFGUqcysiIiIiEtCUuRUREREJRZpzKyIiIiIS2JS5FREREQlFmnMrIiIiIhLYlLkVERERCUXK3IqIiIiIBDZlbkVERERCkLUuf4fgFRrcioiIiIQiTUsQEREREQlsytyKiIiIhCI9xEFEREREJLApcysiIiISijTnVkREREQksClzKyIiIhKKNOdWRERERCSwKXMrIiIiEoo051ZEREREJLApcysiIiISijTnVkREREQksClzKyIiIhKKNOdWRERERCSwKXN7kTmR+LO/QwgK5Sq38XcIQSEj0+XvEILGziMp/g4haDiM8jYXyk074/0dQlBJ9ncAZwvSzK3XB7cFom/x9l8RMjSwvXD2bJuqAa6IiEgQUuZWREREJBRptQQRERERkcCmzK2IiIhIKArSObfK3IqIiIhI0FDmVkRERCQUac6tiIiIiEhgU+ZWREREJBQF6ZxbDW5FREREQpGmJYiIiIiIBDZlbkVERERCUZBOS1DmVkRERESChjK3IiIiIqFImVsRERERkcCmzK2IiIhIKLLW3xF4hTK3IiIiIhI0lLkVERERCUWacysiIiIiEtiUuRUREREJRcrcioiIiIgENmVuRUREREKRVeZWRERERCSgKXMrIiIiEoo051ZEREREJLBpcCsiIiISiqz17ssDxpiWxpgtxphtxpjn/6K8vDFmvjFmtTFmrTGm9fnOqcGtiIiIiPicMcYJ9AdaAVcBdxhjrjqr2svAj9bamsDtwJfnO6/m3IqIiIiEIv/Pub0B2Gat/QPAGPMD0AHYmKuOBYpk/xwJJJ7vpBrcioiIiIg/xAB7cm3HAzeeVacvMMsY8wRQCGh6vpNqWoKIiIhIKMrM9OrLGNPDGLMi16vHv4jyDmCotTYWaA0MN8acc/yqzK2IiIhIKPLyQxystQOAAeeokgCUy7Udm70vtweAltnnW2aMyQ+UBPb+3UmDMnPbonlDNqxfxOaNi+nT+7E85REREXw/8is2b1zM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PV/mdiVggT9b3zt3TIAe5CAiIiIi/4q1dhow7ax9r+b62QLPZL88cs7BrbX2UgBjTH5r7cncZcaY/J7+JSIiIiISWPy9zq23eLrO7V89sEEPcRARERGRgHK+ObdlyVqDrIAxpiZnpicUAQp6OTYRERER8RLr/3VuveJ8c25bAPeRtTTDR7n2HwFe9FJMIiIiIiL/yvnm3A4Dhhljulhrx/koJhERERHxsmCdc+vp43fHGWPaAFcD+XPtf8NbgYmIiIiI9/h7KTBv8eiGMmPM18BtwBNkzbu9FajgxbhERERERP4xT1dLuNlaew+Qaq19HahD1hMiREREROQiZK13X/7i6eN3T2T/edwYEw0cAKK8E5L8nYxMl79DEMlj5fqR/g4haNxQ7W5/hxAUqkXqi8UL5YVrEv0dgsg/5ungdooxpijwX2AVWU8nG+S1qES87Ppqd/k7hKCgga2IyMUrWOfcenpD2ZvZP44zxkwB8ltrD3kvLBERERGRf86jwa0xpiDwLFDeWvuQMaa8MeYWa+0U74YnIiIiIt4QrJlbT28oGwKcIutGMoAE4C2vRCQiIiIi8i95Ori9zFr7AZAOYK09zplH8YqIiIjIRSZYV0vwdHB72hhTgKwbyTDGXEZWJldEREREJGB4ulrCa8AMoJwxZiRQF7jPW0GJiIiIiHcF65xbTwe39wJTgbHAH0BPa+1+r0UlIiIiIvIveDq4/Ra4BWgGXAasNsYsstZ+6rXIRERERMRrrA3hzK21dr4xZhFQG2gEPAxcDWhwKyIiIiIBw9N1bucChYBlwM9AbWvtXm8GJiIiIiLeYzP9HYF3eLpawlrgNFANuBaolr16goiIiIhIwPB0WsLTAMaYwmStkjAEKAvk81pkIiIiIuI1maE859YY8zhZN5RdD+wEBpM1PUFEREREJGB4ulpCfuAjYKW1NsOL8YiIiIiID4T6agkfejsQEREREZH/laeZWxEREREJIqH+hDIRERERCSLW+jsC7/B0KTARERERkYCnzK2IiIhICArWaQnK3IqIiIhI0FDmVkRERCQEBetDHJS5FREREZGgocytiIiISAgK1oc4KHMrIiIiIkFDmVsRERGREKR1bkVEREREApwytyIiIiIhSKsliIiIiIgEOGVuRUREREKQVku4iDRpegu/rprJirg59HymR57yiIgIvh36CSvi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\n",
      "text/plain": [
       "<Figure size 936x648 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.subplots(figsize=(13, 9))\n",
    "sns.heatmap(data_corr,annot=True)\n",
    "\n",
    "# Mask unimportant features\n",
    "sns.heatmap(data_corr, mask=data_corr < 1, cbar=False)\n",
    "\n",
    "plt.savefig('bike.png' )\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "temp and cnt = 0.63\n",
      "weathersit and hum = 0.59\n",
      "yr and cnt = 0.57\n"
     ]
    }
   ],
   "source": [
    "#Set the threshold to select only highly correlated attributes\n",
    "threshold = 0.5\n",
    "# List of pairs along with correlation above threshold\n",
    "corr_list = []\n",
    "#size = data.shape[1]\n",
    "size = data_corr.shape[0]\n",
    "\n",
    "#Search for the highly correlated pairs\n",
    "for i in range(0, size): #for 'size' features\n",
    "    for j in range(i+1,size): #avoid repetition\n",
    "        if (data_corr.iloc[i,j] >= threshold and data_corr.iloc[i,j] < 1) or (data_corr.iloc[i,j] < 0 and data_corr.iloc[i,j] <= -threshold):\n",
    "            corr_list.append([data_corr.iloc[i,j],i,j]) #store correlation and columns index\n",
    "\n",
    "#Sort to show higher ones first            \n",
    "s_corr_list = sorted(corr_list,key=lambda x: -abs(x[0]))\n",
    "\n",
    "#Print correlations and column names\n",
    "for v,i,j in s_corr_list:\n",
    "    print (\"%s and %s = %.2f\" % (cols[i],cols[j],v))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaQAAAGoCAYAAAAJjpFOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3X2UXNV55/vvc+qtu7qFlW6wzSBkSQGcASxaUkMsB3scO4nA1wGPsUDtsYVNFuQyIS1fA4MZPA7jJJPhCjBSxsEREy+DiVsWARMmF1mTxPHCy8ighpbES64cWZZBjIcXySDU1V1vZ88fVd1d1S+iDX3qHGn/PmtpddWp012bYlc9tfd59rPNOYeIiEjcgrgbICIiAgpIIiKSEApIIiKSCApIIiKSCApIIiKSCApIIiKSCApIIiKSCApIIiKSCApIIiKSCOm4G/DLuuCCC9x3v/vduJshIiKzZ7M56ZgbIb3yyitxN0FERCJwzAUkERE5PikgiYhIIiggiYhIIiggiYhIIiggiYhIIkQWkMzs62b2kpk9PcPjZmYbzWyvme02s+VRtUVERJIvyhHSN4ALjvL4hcDp9X9XAXdG2BYREUm4yAKSc+4R4NBRTrkYuMfV/AiYb2YnR9UeERFJtjivIZ0CPN9w/0D9mIiIeOiYSGows6vMbNDMBl9++eW4myMiIhGIMyC9AJzacH9B/dgUzrlNzrle51zvSSed1JLGiYhIa8UZkB4C1taz7d4LvOac+3mM7RERkRhFVu3bzAaADwInmtkB4I+ADIBz7mvAw8BHgL1AAfhsVG0REZHkiywgOef63uBxB/xBVM8vIiLHlmMiqUFERI5/CkgiMQtDx5FihdDVf4Yu7iaJxOKY2zFW5HgSho6DwyX6B4bYsf8Q5y7qYmPfMro7sgTBrDbZFJlzYegolKvksykKpSr5TKol/VEjJJEYFcpV+geG2L7vIJXQsX3fQfoHhiiUq3E3TTw19iXpyrsHOeOmrVx59yAHh0stGbkrIInEKJ9NsWN/c4WtHfsPkc+mYmqR+C7OL0kKSCIxKpSqnLuoq+nYuYu6KJQ0QpJ4xPklSQFJJEb5TIqNfctYuaSbdGCsXNLNxr5l5DMaIUk8CsUZviQVo/+SZLXlQMeO3t5eNzg4GHczROZMXBeQRaZTKFU4NFzi+vt2jyfarF+9lK6OLPnsm86Dm1WHVpadSMyCwOjM1d6KYz9F4tKWSXHrtj3cfNFZnPb2Tva+dIRbt+3h9st6In9uTdmJiMi4QqnKkhM7mo4tObGjJdc19XVMJGaaspMkaU8HrDlvIes27xyfstuwpof2dPTjF42QRGIU55oPkemMVELWbd7ZlPa9bvNORiph5M+tgCQSIy2MlaRR2reIp7QwVpImzrVxCkgiMdLCWEma9nTAhjU9TWvjdA1JxANaGCtJM1IJ2fz4c9x80Vns+ZMLufmis9j8+HMtuYakLDuRGAWB0ZXPsGntCjpyaYaLFWXZSazy2RT7XhluOrbvleGWTCMrIInEKAwdhwplbT8hiTFarnLdqndPqdQwWq6+lUoNs6LSQSIxOlKs8IMfv8TKXz2RE9ozHB4ps/0nr/D+M96uqg0SiyOjFa68Z5Dt+w6OH1u5pJu71vbS2abSQSLHrbZ0wIp3dXH1vU82LUJsa8EFZJHp5HMzZH7mlPYtclwbKVenX4SodUgSE6V9i3iqI5ee9ttoh6brJCZtqenTvttS0YcL9XqRGA0XK5y7qKtpvv7cRV0MFyvMa8vE2DLx1UilOp72PVbte/Pjz/HZ8xczL+KpZI2QRGLUnk7NsAhR65AkHh259LRp360YtWuEJBKjkUqVF14t8JefXkFnW5ojoxV+8vLrtGdTkX8bFZnOaKnKf7jg17h2y67xRJvbLj2H0VKVfMRBST1eJEbtmRSnzM/z+998gjNu2srvf/MJTpmfp12VGiQmoXNcu2VXU6LNtVt2EbZgiZACkkiMlGUnSZOfIdEm6tERKCCJxEpZdpI0heIMad9FpX2LHNfGsuwajWXZicQhCOC2S89pSrS57dJzCFoQLVQ6SCRGo6UKh0crU7aLPqEtTVvEdcNEplOthrxerPBqocypXXmeP1Rgfj7DvFya1Jtfi6TSQSJJl82k2Dr4PHd+avl4Lbu/3fkCn165KO6miadGKiFX3/vk1Fp2l/fSGfHiWE3ZicRouFjhtUKZFw8XcQ5ePFzktUJZU3YSmzh3MdYISSRGucBYc97CKVN2OW09ITEZLlbo/9BprDr75PFKDdue/nlLqocoIInEqBi6Gcu0ZONunHgpExhr37eIVwtlAHLpgLXvW0SmBV+SFJBEYpTPpvjYsgXccP/EZmi3XLK0JdMjItMJXW2frhsfeKppg75sKvqvSLqGJBKjQqnKDffvbloYe8P9u1tS6l9kOqGD6+9r7pPX37ebsAUJ2RohicSoI5fmHSfk2Pa5D4xP2d35/b1aGCuxiXODPvV6kRiNlqpct+rdXH/f7qbpkVYUshSZTmGGLVEKxQqdESc1aMpOJEahczNMjxxbC9bl+BEExvrVS5sqNaxfvZRASQ0ix7c4C1mKTKctk+LWbXuaMj9v3baH2y/rify51etFYhTn9IjIdIaLFV48XGTVHY+MH1u5pLsl65A0ZScSo8Bs+kKWpoWxEo98NsUtlzRP2bVqKYJGSCIxymUCMkXjzz7+nvFClpnAyGX0XVHiMVIKeXDoQNOU3YNDB7ji/CV0tkXbLxWQRGJUKFXpr2/QN2blkm42rV3BvIjf/CLTCQL4+IoFUzI/W7H9hAKSSIy0DkmSpi2dYl4u3TRqn5dL05aOfspO+yGJxKhQrFAoVzgyWh1/83e2pchn0sq0k9iEoaNQrpLPpiiUquQzqbea9q39kESOBZUqTXXDvnJZDyjBTmIUBEZn/QtRZwu/GCkgicQodI4tO5qrfW/Z8RxXnL847qaJtJx3ASmCoajIm9Y+Q7XvdlX7Fg95lcYTho6DwyWuvHuQM27aypV3D3JwuETYijK2ItNQtW9JojB0HClWCF39Z4s+I70aIRXKVQYe+1nT9MjAYz/jivcvaek8qciYjhlKBynLTuIy9sW9f2BofNS+sW8Z3R3ZyGeTvBohtWcCPrZsATc/9Azv/uJWbn7oGT62bAHtWoQoMRmulw5qdO6iLoaLlZhaJL4rlKv0Dww1jdr7B4YolKMftXv1SazpEUmafDbF7Zc1lw66/bJztGOsxCafnWE/JJUOmluaHpGkKZZD8tkUd35qOSe0Zzg8Usasfjzn1fdFSYhCqUr/h05j1dknj1/a2Pb0zymUqpFf2vDqk7hQqk5fWbkFL7TITF4frUwp09KVz8bdLPFUezpgzXkLWbd553if3LCmh/Z09F+QvPoK1p4O2LCmp2l6pFUvtMh0QscMG/TF3TLx1UglZF29vuJYn1y3eScjlTDy5/ZqWDBSCdn8ePMixM2PP1fLskspKEnr5XMzzNfndA1J4qFrSC2Sz6bY+L293P4P/zJ+LB0Y13z49BhbJT7TBn2SNHFe2vAqIMV5sU5kOoEZd6zp4XMN8/V3rOnRBn0Sm3wmxca+ZVPWIeUzqvY9xVup9l2thhwcLk25WNfdkSWlKTuJQaUacqRY4dVCebza9/x8hs5cmrT6pMTkuKz2bWYXABuAFPDfnXP/ddLjC4G7gfn1c77gnHs4qvY0XqwDxi/W3XV5r64hSSxGylWuvvfJ6TfoU5+UmMRV7TuyHm9mKeCrwIXAmUCfmZ056bQvAlucc8uANcBfRNUeiPdinch0tDZOZEKUvf48YK9zbh+AmW0GLgaebTjHASfUb78N+F8RtkfXkCRxhmdIahguVpinpAbxTJRzAqcAzzfcP1A/1uhm4FNmdgB4GPjDCNszvuCrsZbdmvMWah2SxCYT2LRr4zLaEkU8FPewoA/4hnPuNjNbCXzTzM52zjWtwDKzq4CrABYuXPimn0zrkCRpspkUz/70IH/56RV0tqU5MlrhyecO8YEz3h5300RaLsqA9AJwasP9BfVjjX4PuADAObfdzNqAE4GXGk9yzm0CNkEty+7NNmis2veUzdBU7VtiMlqqcsY7TuD3v/nEeJ+87dJzGC1VyWsaWTwT5SfxDuB0M1tsZllqSQsPTTrnOeDDAGb2r4E24OWoGqRq35I0oXNcu2VXU5+8dssuwmNsOYbIXIgsIDnnKsA1wDbgn6ll0z1jZl82s4vqp10LXGlmu4AB4DMuwoVRymiSpMnP0Cc1OhIfRdrr62uKHp507EsNt58FfiPKNjQqFGcoiVGs0tmmDwBpPfVJkQleXTwJArjt0ubN0G679BwCr14FSZLAYP3qpU19cv3qpSjJTnzkVemgSiXkSGmaMi3ZNGmlfksMCsUKhXKFI6PV8T7Z2ZYin0lr2k6OJ/GXDkqakcpRyrQoIEkM2rIp/uN3nuLqD54GQLEScsff/ZjbL+uJuWUiredVQOrIpXnHCTm2fe4D4+uQ7vz+XiU1SGyGixVePFxk1R2PjB9buaRblRrES15N2RWKFQ4VStNuF63pEYlDNQw5dKTEcGliyq4jm6KrM0tKFzfl+DGrKTuvenzVuWm3i64eY0FZjh/FckgI3PjAU7z7i1u58YGnCOvHRXzjVUDSOiRJmtA5PlffEmXsS9LnNu/UwljxklcBaayycqOxysoicdDCWJEJXvX6scrKk3eMVWVliUuhOMOWKFoYKx7yqsdXQqav9n3+kribJp5KB7DmvIVTviRpFYL4yKssu9A5zrhpK5Vw4r85HRg//tMLCUyjJGm9I6NlrrzniSlr4+5au4JOpX3L8UNZdpMVZriGVNA1JImJriGJTPCq1wdmfO3Ty3EOTmjPcHikjBkaHUlsCjNsYV4oVjRCEu94NULKpgOK5ZCr732SM27aytX3PkmxHJLVhL3EJDCbvuCvviSJh7y6hvT6aJmrppmv37R2hcq0SCxC53jkxy+xfGHXlC3MFZTkOKLiqpOplp0kTalc5cyT39a0hfmGNT2UylXasuqX4hevRkiqZSdJo1G7JFEYOgrlKvlsikKpSj6TInhr6zWVZTdZOEMtO5VpkbionJUkTRg6Dg6XuPLuQc64aStX3j3IweESYRj956RXAUkptpI0KmclSVMoV+kfGGr64t4/MEShXI38ub0KSFqHJEmTmiHLLqWEBolJPpua/ot7NhX5c3s1NBhLsb12y67xa0hKsZU45TIBmaLxZx9/z/h+SJnAyGW8+q4oCVIoVadfG1eq0hnxbJJXSQ3FUoWRSsirhfL4m39+PkN7OiCnjCaJgZIaJGnGriH1DwyNf3Hf2LeM7o7sW0lsUNr3ZOXQcc+j+1l19skAFCsh9zy6nyvOX0wu5raJn5TUIEkTBEZ3R5a7Lu+dyyy7WfGq1+dzaTZ+by+3/8O/jB9LB8Y1Hz49xlaJz1Q6SJIoCGx8ei7qabqm523ZMyVAoVidIakh+uwRkelkAmNDX09TUsOGPu3RJX7yaoQUGPz5J3s4Mlodv4bU2ZZC732JS9XV+mVjUkNgteMivvEqIGVTAUdKcOMDT02UaenrIZvyaqAoCRI6+MNv7ZxmP6TeGFslEg+vPolHKlXWDexsWvC1bmAnIxVN2Uk88rkZ1nzkol/zIZI0Xo2QlNEkSVMoVuj/0GmsOvvk8YK/257+uZIaxEtefRIPFyv8eV8PK3/1xPEN+rb/5BWGixWt+ZBYpANjzXkLWbd5Z1O177QubIqHvJqyywbGind1NW3Qt+JdXWT15peYVELHus2TppE376TSgkKWIknjVUAqzfDmL+nNLzHJN+zR9ZP/8hG2fe4DvOOEnAr+ipe86vW6hiRJM1qqct2qd0/Zo2u0VFVQEu94NUJSqX9JGu3RJTLBq4DUnkmxYc2kVfFremjPKMVW4qE9ukQmeNXrS5WQtkzAnZ9aPp5lF1jteFqLYyUGqmUnMsGrT+Gqc3zjh/t58XAR5+DFw0W+8cP9VDU9IjEJzPjKZc2j9q9c1qM9usRLXu2HVA1DDh0pMVyaqGXXkU3R1ZklFXgVmyUhRksVKqGjErrxUXs6MNKB0aY9uuT4of2QJiuWQ2xS3LGgdjyfU0CS1gsdHB6tTNnFeH67puvEP959CpcqjhsfeIp3f3ErNz7wFKXKsTVClONL6BzXbtnVlGV37ZZdyrITL3kVkPTml6RRlp3IBK8Ckt78kjRaGycywauApDe/JE0+m+KWS5Y2ZdndcslS8lmtjRP/eDU0yGdT3Lr6HK67b+IC8q2rz9GbX2IzUqryzP96tWlt3PafvEJXx0l0tnn1fVHEr4BULNcWxjZuF92WCZRlJ7FJN1Sg1/YT4juvAlLVOa751tCU7aI3rV0RY6vEZ43bTwDjFejvUp8UD3k1LFC1b0kaJdqITPAqIBVmSGooKKlBYlIoVmfok9WYWiQSH68CUmDG+tXNGU3rVy9V3TCJTWDM0CfjbplI63k1L9CWTXHrd/Zw80VncdrbO9n70hFu3baH2y/ribtp4qlsOqAzl25KtOnMpcmmvfquKAJ4FpCGixVePFxk1R2PjB9buaSb4WKFeSr1LzEYKVe559H9rDr7ZACKlZB7Ht3PZ89fzDxtiSKe8a7a9/9+rThlHdI735ZTtW+JRegcZ9y0lUo48T5MB8aP//RCTSXL8UTVvicrlKrsPvCLKYsQT2g/iXlahCgxGEtqmLpBX5XONq/eniJ+BaT2TGraRYjawlziEhj8t08u4/XRyvg1pHltaSU1iJe8GhaMlKvjixDHqn2v27yTkbJSbCUe2VRA1TVviVJ1jqyuH4mHvOr1WhgrSTNSqbJuYNKXpIGdjFT0JUn841VAUrVvSRp9SRKZ4FVAas+k2LCmp2kRoq4hSZxUqUFkglcBaaRcZfPjz3HzRWex508u5OaLzmLz48/pGpLERpUaRCZ4tQ5Jaz4kaaphyKEjJYZL1fEsu45siq7OrNbGyfFkVh+wkfZ4M7vAzPaY2V4z+8IM51xqZs+a2TNm9q0o26NrSJI0hVKVgcefo1gJgVqlhoHHn6NQ0qhd/BPZCMnMUsCPgd8GDgA7gD7n3LMN55wObAE+5Jz7hZm93Tn30tH+7lsZIZVKFV4drbBu886mdUjz29Jks7qILK03WqpweJo+eUJbmjb1STl+xF6p4Txgr3NuH4CZbQYuBp5tOOdK4KvOuV8AvFEwequKoRu/hjRWXHXz48/x2fMXk43yiUVmkKkXV920dgUduTTDxQopMzIqrioeijIgnQI833D/APDrk845A8DMfgikgJudc9+NqkEduTQbv7eX2//hX8aPpQPjmg+fHtVTihxVuRJypDh1hBRYmlRWQUn8EvecQBo4HfggsAB4xMze45x7tfEkM7sKuApg4cKFb/rJhosV+j90GqvOPnl8hLTt6Z+r2rfEpnyUUXtb3I0TabEoA9ILwKkN9xfUjzU6ADzmnCsDPzWzH1MLUDsaT3LObQI2Qe0a0pttUCYw1r5vEa8WygDk0gFr37eIjHJsJSb5bIqPLVvADffvHh8h3XLJUvJZrY0T/0Q5J7ADON3MFptZFlgDPDTpnAepjY4wsxOpTeHti6pBoYMjxUpT3bAjxQrhsZX5LseRQqnKDffvbioddMP9u5VlJ16KbITknKuY2TXANmrXh77unHvGzL4MDDrnHqo/9jtm9ixQBa53zh2c+a++NaGDB5440DQ98sATB7ji/CVRPaXIUal0kMiESHu9c+5h4OFJx77UcNsBn6//i1x7NqDvvIUM17995tK1++26eCwxKdTXxk3dD6lCp65rime8+hpWLIcUqyE3PvDU+Hz9+tVLKZZD8jkFJWm9wIw//2QPR0YnKjV0tqVUOUS85NWncOjg+vua5+uvv2+3riFJbHKZgGK5eT+kYtmRy3j11hQBPAtI+Vxq2vn6fE4ZTRKPQqnKdfftavqSdN19u5TUIF7yaspO65AkaZTUIDLBq17fnk6x5ryFU1bFt6c1QpJ4DM+Q1KAvSeIjr6bsRipV1m2etF30Zm0XLfHJZ1PccknzfkhaGCu+8mqEpOkRSZpCqcqDQ81r4x4cOsBnz1/MvDavvi+K+BWQdA1JkkblrEQmeBWQcoFNew0ppze/xCSTDvjFSLlpbdztl53DvDav3poigGfXkEqhm/YaUkkLkSQmhVKVz3+7Oe37899W2rf4yauAlJ/hGlJe15AkJrquKTLBq4BUKFY5d1FX07Fa3TB9G5V4qE+KTPAqIKUD2LCmpynFdsOaHrRbtMQlCGD96ua07/WrlxKoT4qHvJoXqMywO+cV5y+Ou2niqbZMin/85xe581PLOaE9w+GRMn+78wU+vXJR3E0TaTmvAlI+l2bfK8NNx/a9MqxrSBKb0VKVD//rd3D1vU82VaAfLVXVL8U7VtuS6NjR29vrBgcH39TvFooVDhVKXH/f7qY3f1c+qze/xOL10TJX3fNEU+mglUu62bR2hdbGyfFkVmtrvJqprjo37fYT1WMsKMvxQ1l2IhO8Ckh680vSjBVXbTRWXFXEN14FJKXYStLkAps281PVQ8RHXl1DGi1VODxamVI66IS2NG1ZjZKk9cLQUapUKYeOjlya4WKFTGBk0ykCBSU5fsyqM3v1Kay0b0maoB58KuXaKN1MwUj85dWUndK+RUSSy6tP4tFSletWvXtK2rfWfEhcwtBxcLhE/8DQeJ/c2LeM7o6sRkniHa9GSEr7lqQplKv0Dww19cn+gSEKZSXaiH+8CkhK+5akyWdT01eg1xbm4iGvApLWfEjSqE+KTJhVQDKz+WbWb2a3m9nGsX9RN26u5bMpbrmkubLyLZcs1bdRiY36pMiE2c5VPQz8CHgKCKNrTrRGSiEPDh1oSvt+cOgAV5y/hM42rwaLkhDqkyITZhuQ2pxzn4+0JS0QGHx8xYIpWXZKZpK4qE+KTJhVpQYz+3+AI8DfAcWx4865QzP+UkTeSqWGSiXkSKnCq4Uyp3blef5Qgfn5DJ3ZNGnt0icxCJ3jm9v3c3HPKVP2QwpMUUmOG3Na7bsErAe2A0/U/725qBCjkUqVex7dT7FSm3UsVkLueXQ/IxWl2Eo8RktVfvvMd3L1vU9yxk1bufreJ/ntM9/JaEl9Uvwz24B0LXCac26Rc25x/d+SKBsWhY4ZKjUo7VviEjrHtVt2Na1DunbLLkKtjRMPzTYg7QUKUTakFUZLVf7TR88kV5+ey6UD/tNHz9S3UYlNfoa1caocIj6aba8fBnaa2T/RfA2pP5JWRWikXOXGB55quoDcnlGKrcRjbB1S446xY+uQtGOs+Ga2I6QHgT8FHmXiGtITUTUqKqFj2tJBoWZHJCZahyQyYVYjJOfc3VE3pBXyuRnKtOT05pd4aB2SyIRZBSQz+ykwZRxxrCU2aHpEkiafTdH36wvpH9jZUO27RyMk8dJs1yF1N9xtA1YDXc65L0XVsJm8pXVI1ZBDhRLrGt78G/p66MpnSaf0bVTiEYaOQrlKPpuiUKqSz2iDPjnuzKpDv+ktzM3sCefcijf1y2/BWwlIhWKFShgSOsYXIQYG6SBQVpOISHTmbgtzM1vecDcAemf7u0lSdY7f/+aTTVN2K5d0s2lty+OqiIhMMtugchsT15AqwH5q03bHFO2HJCKSXLO9cHIh8FfAPwI/BF4A1kTVqKho7xkRkeT6ZdYh/S5QplZk9Qi1xbLHFK35EBFJrtnOVS1wzl0QaUtaoFCqTrvm47PnL2ae1nyIiMRqtgHpUTN7j3PuqUhbE7H2TIo1v75wStq3SgdJnJT2LVJz1IBkZk9RS2ZIA581s33UatkZ4JxzS6Nv4twpVUICgz/7+HvG90MKrHZc65AkDmHoODhcon9gqGFh7DK6O7IKSuKdNxohfbQlrWiR0MEffmvnlLTvu9b2xtgq8VmhXKV/YGi8T27fd5D+gSHuuryXTmV/imeO2uOdcz9rVUNaIZ9L8Y4Tcmz73AfGryHd+f29qmUnsclnZ6ivqEQb8ZBXX8FGS1WuW/Vurr9vd9P2E6Olqio1SCwKpeq09RULpapGSOIdry6cVJ2bdvuJqnbnlJjkMyk29i1rWoqwsW8ZeSXaiIe8+gqmSg2SNEFgdHdkuevyXmXZife8GiEVitVpKzUUitrCXOITBEZnLk1g9Z8KRuIprwJSYLB+dXOlhvWrl6L3v4hI/Lybq5rXlubOTy0f337CFIxERBLBq4CUywT84rUy1923azzL7tbV5/DOt3n1MoiIJJJXU3aFUpXr7tvVlGV33X27KJR0DUlEJG5eBSRl2UkShaHjSLFC6Oo/Qy1DED95FZC0H5IkzVgtuyvvHuSMm7Zy5d2DHBwuKSiJl7wKSO3pFBv6epqy7Db09dCe1iJEiUehXGXgsZ9x80VnsedPLuTmi85i4LGfUShrGln849VcVakakksHU7LsStWQdNqr2CwJ0Z4J+NiyBdxw/0Q5q1suWUp7Rv1R/BNprzezC8xsj5ntNbMvHOW8S8zMmVnkZbdfH61w9b1PcsZNW7n63id5fVTTdRKfQqnKDfc3l7O64f7dSrQRL0UWkMwsBXwVuBA4E+gzszOnOW8esA54LKq2jAkd09ay03S9xEWJNiITohwhnQfsdc7tc86VgM3AxdOc98fALcBohG0BattPTFvqX9tPSEzGqn03Gqv2LeKbKAPSKcDzDfcP1I+NM7PlwKnOuf8vwnaMU5adJI2qfYtMiG1ewMwC4HbgM7M49yrgKoCFCxe+6efMZ1PccsnSKReQtRmaxEXVvkUmRBmQXgBObbi/oH5szDzgbOD7Viso907gITO7yDk32PiHnHObgE0Avb29b/qKz0ipyoNDB7j5orPGd4x9cOgAV5y/mM42ZTVJPMaqfQPalE+8FmXv3wGcbmaLqQWiNcAnxx50zr0GnDh238y+D1w3ORjNpcCMj69YMGXH2EAVVkVEYhdZQHLOVczsGmAbkAK+7px7xsy+DAw65x6K6rln0pZNcet39jSNkG7dtofbL+tpdVNERGSSSOcHnHMPAw9POvalGc79YJRtASgUK7x4uMiqOx4ZP7ZySTeFYoXOtkzUTy8iIkeTP3IzAAARJ0lEQVTh1YWTwIzbLj2nKaPptkvP0ZSdiEgCeHUFNZcJ6AxTTaWDAqsdFxGReHkVkIrlkMOjlSlJDekgIJ9TUBIRiZNXn8IqHSQiklxeBSSVDhIRSS6vApJKB4mIJJdX15DymVpCw6uFMqd25Xn+UIH5+YzqhomIJIBXAQlqm/Hd+MBT40kNG/q0KFZEJAm8mrIrlKusG9jZlNSwbmCntosWEUkArwKSNkMTEUkurwKSkhpERJLLq4CUCYwNa3qaSgdtWNNDRnvPiIjEzqu5qmwmxdbB55tKB/3tzhf49MpFcTdNRMR7XgWkQrHKd59+kT966NnxYyuXdHPJ8lPpbPPqpRARSRyvpuzy2RQb+5qn7Db29WgLcxGRBPBqWBAERlc+y6a1K+jIpRkuVshnUgS6hiQiEjuvAlIYOg4VyvQPDI0vjN3Yt4zujqyCkohIzLyasiuUq/QPDDUtjO0fGNLCWBGRBPAqIOWzM1T71jUkEZHYeRWQCqXqtAtjCyWNkERE4uZVQMpnZsiyU7VvEZHYeZXU4Jwjkwr4s4+/Z3z7iUwqwDkHKKlBRCROXgWkQrnK1fc+yfZ9B8ePrVzSzaa1K5iX8mqwKCKSOF59Cqvat4hIcnkVkFTtW0QkubwKSCkz1q9e2pTUsH71UlKm60ciInHzaq6qLZvi1u/s4eaLzuK0t3ey96Uj3LptD7dfpm3MRUTi5lVAGi5WePFwkVV3PDJ+bOWSboaLFea1ZWJsmYiIeDVll8+muOWS5im7Wy5ZqkoNIiIJ4NUIaaQU8uDQgaYpuweHDnDF+UvobPMqNouIJI5Xn8JBAJ9870Jy6dp/di4d8Mn3LiTw6lUQEUkmr0ZIuVTAEQc3PvDU+PYTG/p6yGlRrIhI7Lz6JB6phKwb2Nm0/cS6gZ2MVMK4myYi4j2vApK2nxARSS6vApK2nxARSS6vriHlMym+9qnl/KJQHq/2/Sv5jLafEBFJAK8CEkCpGjYlNWzsU5UGEZEk8GvKrlylf1JSQ//ATgplTdmJiMTNq4CkpAYRkeTyKiApqUFEJLm8Ckj5TIqNfcuaatlt7FumpAYRkQTwKqkhCIzujix3Xd5LPpuiUKqSz6QIAu2HJCISN69GSCIiklxejZDC0HFwuET/wFBD2vcyujuyGiWJiMTMqxFSLe17aFLa95DSvkVEEsCrgKS0bxGR5PIqICntW0QkubwKSEr7FhFJLq+SGpT2LSKSXF4FJKgFpc5c7T977KeIiMTPqyk7ERFJLgUkERFJBAUkERFJBAUkERFJBAUkERFJBAUkERFJBAUkERFJBAUkERFJBAUkERFJBAUkERFJhEgDkpldYGZ7zGyvmX1hmsc/b2bPmtluM/tHM3tXlO0REZHkiiwgmVkK+CpwIXAm0GdmZ046bQjodc4tBf4G+H+jao+IiCRblCOk84C9zrl9zrkSsBm4uPEE59w/OecK9bs/AhZE2B4REUmwKAPSKcDzDfcP1I/N5PeArRG2R0REEiwR+y+Y2aeAXuDfzPD4VcBVAAsXLmxhy0REpFWiHCG9AJzacH9B/VgTM/st4CbgIudccbo/5Jzb5Jzrdc71nnTSSW+pUWHoOFKsELr6z9C9pb8nIiJzI8oR0g7gdDNbTC0QrQE+2XiCmS0D/hK4wDn3UoRtAWrB6OBwif6BIXbsP8S5i7rY2LeM7o6sdo0VEYlZZCMk51wFuAbYBvwzsMU594yZfdnMLqqfth7oBO4zs51m9lBU7QEolKv0Dwyxfd9BKqFj+76D9A8MUShXo3xaERGZhUivITnnHgYennTsSw23fyvK558sn02xY/+hpmM79h8in021shkiIjINryo1FEpVzl3U1XTs3EVdFEoaIYmIxM2rgJTPpNjYt4yVS7pJB8bKJd1s7FtGPqMRkohI3BKR9t0qQWB0d2S56/Je8tkUhVKVfCalhAYRkQTwKiBBLSh15mr/2WM/RUQkfl5N2YmISHIpIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCIoIImISCJEGpDM7AIz22Nme83sC9M8njOzb9cff8zMFkXZHhERSa7IApKZpYCvAhcCZwJ9ZnbmpNN+D/iFc+404CvALVG1R0REZicMHUeKFUJX/xm6ljxvlCOk84C9zrl9zrkSsBm4eNI5FwN312//DfBhM7MI2yQiIkcRho6DwyWuvHuQM27aypV3D3JwuNSSoBRlQDoFeL7h/oH6sWnPcc5VgNeA7gjbJCIiR1EoV+kfGGL7voNUQsf2fQfpHxiiUK5G/tzHRFKDmV1lZoNmNvjyyy/H3RwRkeNWPptix/5DTcd27D9EPpuK/LmjDEgvAKc23F9QPzbtOWaWBt4GHJz8h5xzm5xzvc653pNOOimi5oqISKFU5dxFXU3Hzl3URaF0bI+QdgCnm9liM8sCa4CHJp3zEHB5/fYngO8551pz9UxERKbIZ1Js7FvGyiXdpANj5ZJuNvYtI5+JfoSUjuoPO+cqZnYNsA1IAV93zj1jZl8GBp1zDwF/BXzTzPYCh6gFLRERiUkQGN0dWe66vJd8NkWhVCWfSREE0eeb2bE2IOnt7XWDg4NxN0NERGZvVtHsmEhqEBGR458CkoiIJIICkoiIJIICkoiIJIICkoiIJIICkoiIJIICkoiIJIICkoiIJIICkoiIJIICkoiIJIICkoiIJIICkoiIJIICkoiIJIICkoiIJIICkoiIJMIxtx+Smb0M/GwO/tSJwCtz8HeipDbOnWOhnWrj3FAb585ctfMV59wFb3TSMReQ5oqZDTrneuNux9GojXPnWGin2jg31Ma50+p2aspOREQSQQFJREQSweeAtCnuBsyC2jh3joV2qo1zQ22cOy1tp7fX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\n",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Scatter plot of only the highly correlated pairs\n",
    "for v,i,j in s_corr_list:\n",
    "    sns.pairplot(data, size=6, x_vars=cols[i],y_vars=cols[j] )\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数据分割"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {},
   "outputs": [],
   "source": [
    "seg_data = dict(list(data.groupby(['yr'])))\n",
    "train_data = pd.DataFrame(seg_data[0])\n",
    "test_data = pd.DataFrame(seg_data[1])\n",
    "#yr特征现在可以删除\n",
    "del train_data['yr']\n",
    "del test_data['yr']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.344167</td>\n",
       "      <td>0.805833</td>\n",
       "      <td>0.160446</td>\n",
       "      <td>985</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.363478</td>\n",
       "      <td>0.696087</td>\n",
       "      <td>0.248539</td>\n",
       "      <td>801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.196364</td>\n",
       "      <td>0.437273</td>\n",
       "      <td>0.248309</td>\n",
       "      <td>1349</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.200000</td>\n",
       "      <td>0.590435</td>\n",
       "      <td>0.160296</td>\n",
       "      <td>1562</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.226957</td>\n",
       "      <td>0.436957</td>\n",
       "      <td>0.186900</td>\n",
       "      <td>1600</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   workingday  weathersit      temp       hum  windspeed   cnt\n",
       "0           0           2  0.344167  0.805833   0.160446   985\n",
       "1           0           2  0.363478  0.696087   0.248539   801\n",
       "2           1           1  0.196364  0.437273   0.248309  1349\n",
       "3           1           1  0.200000  0.590435   0.160296  1562\n",
       "4           1           1  0.226957  0.436957   0.186900  1600"
      ]
     },
     "execution_count": 117,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>365</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.370000</td>\n",
       "      <td>0.692500</td>\n",
       "      <td>0.192167</td>\n",
       "      <td>2294</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>366</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.273043</td>\n",
       "      <td>0.381304</td>\n",
       "      <td>0.329665</td>\n",
       "      <td>1951</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>367</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.150000</td>\n",
       "      <td>0.441250</td>\n",
       "      <td>0.365671</td>\n",
       "      <td>2236</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>368</th>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0.107500</td>\n",
       "      <td>0.414583</td>\n",
       "      <td>0.184700</td>\n",
       "      <td>2368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>369</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.265833</td>\n",
       "      <td>0.524167</td>\n",
       "      <td>0.129987</td>\n",
       "      <td>3272</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     workingday  weathersit      temp       hum  windspeed   cnt\n",
       "365           0           1  0.370000  0.692500   0.192167  2294\n",
       "366           0           1  0.273043  0.381304   0.329665  1951\n",
       "367           1           1  0.150000  0.441250   0.365671  2236\n",
       "368           1           2  0.107500  0.414583   0.184700  2368\n",
       "369           1           1  0.265833  0.524167   0.129987  3272"
      ]
     },
     "execution_count": 118,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {},
   "outputs": [],
   "source": [
    "#从分割数据中分离输入特征x和y\n",
    "Y_train = train_data['cnt'].values\n",
    "Y_test = test_data['cnt'].values\n",
    "\n",
    "X_train = train_data.drop('cnt',axis = 1)\n",
    "X_test = test_data.drop('cnt',axis = 1)\n",
    "\n",
    "columns = X_train.columns + X_test.columns"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数据预处理／特征工程"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/fei/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:475: DataConversionWarning: Data with input dtype int64 was converted to float64 by StandardScaler.\n",
      "  warnings.warn(msg, DataConversionWarning)\n"
     ]
    }
   ],
   "source": [
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "ss_x = StandardScaler() \n",
    "ss_y = StandardScaler()\n",
    "\n",
    "X_train = ss_x.fit_transform(X_train) \n",
    "X_test = ss_x.transform(X_test)\n",
    "\n",
    "Y_train = ss_y.fit_transform(Y_train.reshape(-1,1)) \n",
    "Y_test = ss_y.transform(Y_test.reshape(-1,1))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 确定模型类型"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 岭回归/L2正则"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The r2 score of RidgeCV on test is  -0.7705818988636859\n",
      "The r2 score of RidgeCV on train is  0.6849352204976915\n"
     ]
    }
   ],
   "source": [
    "from sklearn.linear_model import RidgeCV\n",
    "from sklearn.metrics import r2_score\n",
    "\n",
    "alphas = [ 0.01, 0.1, 1, 10,100]\n",
    "ridge = RidgeCV(alphas=alphas,store_cv_values=True)\n",
    "ridge.fit(X_train,Y_train)\n",
    "y_test_pred_ridge = ridge.predict(X_test)\n",
    "y_train_pred_ridge = ridge.predict(X_train)\n",
    "\n",
    "print('The r2 score of RidgeCV on test is ',r2_score(Y_test,y_test_pred_ridge))\n",
    "print('The r2 score of RidgeCV on train is ',r2_score(Y_train,y_train_pred_ridge))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "alpha is: 1.0\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>coef_ridge</th>\n",
       "      <th>columns</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>[0.7294356695528048]</td>\n",
       "      <td>temptemp</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>[0.01369527013072247]</td>\n",
       "      <td>workingdayworkingday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>[-0.008789941573944748]</td>\n",
       "      <td>humhum</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>[-0.17127922154401531]</td>\n",
       "      <td>windspeedwindspeed</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>[-0.22879597055068546]</td>\n",
       "      <td>weathersitweathersit</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                coef_ridge               columns\n",
       "2     [0.7294356695528048]              temptemp\n",
       "0    [0.01369527013072247]  workingdayworkingday\n",
       "3  [-0.008789941573944748]                humhum\n",
       "4   [-0.17127922154401531]    windspeedwindspeed\n",
       "1   [-0.22879597055068546]  weathersitweathersit"
      ]
     },
     "execution_count": 133,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mse_mean = np.mean(ridge.cv_values_, axis = 0)\n",
    "plt.plot(np.log10(alphas), mse_mean.reshape(len(alphas),1)) \n",
    "\n",
    "#这是为了标出最佳参数的位置，不是必须\n",
    "#plt.plot(np.log10(ridge.alpha_)*np.ones(3), [0.28, 0.29, 0.30])\n",
    "\n",
    "plt.xlabel('log(alpha)')\n",
    "plt.ylabel('mse')\n",
    "plt.show()\n",
    "\n",
    "print ('alpha is:', ridge.alpha_)\n",
    "\n",
    "# 看看各特征的权重系数，系数的绝对值大小可视为该特征的重要性\n",
    "fs = pd.DataFrame({\"columns\":list(columns), \"coef_ridge\":list((ridge.coef_.T))})\n",
    "fs.sort_values(by=['coef_ridge'],ascending=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 正则化的线性回归（L1正则 --> Lasso）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The r2 score of LassoCV on test is -0.800348583320234\n",
      "The r2 score of LassoCV on train is 0.6815230737040211\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/fei/.local/lib/python3.6/site-packages/sklearn/linear_model/coordinate_descent.py:1094: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    }
   ],
   "source": [
    "from sklearn.linear_model import LassoCV\n",
    "\n",
    "#alphas = [ 0.01, 0.1, 1, 10,100]\n",
    "#lasso = LassoCV(alphas=alphas)\n",
    "lasso = LassoCV()\n",
    "lasso.fit(X_train, Y_train)\n",
    "y_test_pred_lasso = lasso.predict(X_test)\n",
    "y_train_pred_lasso = lasso.predict(X_train)\n",
    "\n",
    "print ('The r2 score of LassoCV on test is', r2_score(Y_test, y_test_pred_lasso))\n",
    "print ('The r2 score of LassoCV on train is', r2_score(Y_train, y_train_pred_lasso))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAEKCAYAAAAW8vJGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xl0nPV97/H3d2Y0kiVblmzLxngHbMAsBm+QsISEQAltk6YhIZBC1nJv0vSmve1pyUlOuGnPveem9PT29LaQkkDhpklIS6CFlEAIhDgU8IbxFtvg3fKCJUuWrH2W7/1jHsFIWNLI0uiZ5fM6Z848zzO/mfn+ZiR99Dy/ZzF3R0REpF8k7AJERKSwKBhERGQABYOIiAygYBARkQEUDCIiMoCCQUREBlAwiIjIAAoGEREZQMEgIiIDxMIuYLRmzJjhCxcuDLsMEZGisnHjxmZ3b8ilbdEFw8KFC9mwYUPYZYiIFBUzO5BrW21KEhGRARQMIiIygIJBREQGUDCIiMgACgYRERlAwSAiIgMoGEREZICiO45BRKQcJFJpWjr7aGztprG1i0MtXSybV8c1i3M6Rm1MFAwiInmy42g7//unOzGDimiEeDSCGUTMAEilnUQqTTLtdPYm6epL0dGbpKWzj7buxLte74vXnatgEBEpZk9sOsx/7m7morNr6U2mSaTSOOAO7k40YlREI8SiRnU8xozJcRZMr2ZaTZxpNXGmT65kTl0V8+qrmVtfzaR4dELqVjCIiOTJpoOtXDJ3Kk986aqwSxkVDT6LiORBIpVmS2Mbl8+rD7uUUVMwiIjkwc6jp+hNprl8fl3YpYyagkFEJA9eP9QKoGAQEZGMTQdP0jClkjl1k8IuZdQUDCIiebDp0Ekun1eHBbumFhMFg4jIOGvt7GNfcyeXzy++gWdQMIiIjLvXD50EinN8AfIYDGb2kJkdN7Ntw7S5zsxeN7PtZvbLfNUiIjKRNh1sJWJw6dypYZdyRvK5xvAwcNNQD5pZHXAf8GF3vwj4eB5rERGZMJsOneSCs2qpjhfnMcR5CwZ3XwO0DNPkduBxdz8YtD+er1pERCZKOu28fvBk0W5GgnDHGJYA9Wb2opltNLM7Q6xFRGRc7Gnq4FRvsmgHniHccyXFgBXA9cAk4BUze9Xd3xjc0MzuAu4CmD9//oQWKSIyGpsOFvfAM4S7xtAIPOvune7eDKwBlp2uobs/4O4r3X1lQ0P+TzkrInKmNh5opa66gkXTa8Iu5YyFGQz/DlxtZjEzqwauAHaEWI+IyJhtONDCivn1RCLFd2Bbv7xtSjKzHwLXATPMrBG4B6gAcPdvu/sOM3sG2AKkge+6+5C7toqIFLoTHb3saerklhXzwi5lTPIWDO5+Ww5t7gXuzVcNIiITaeOBzInzVi0s3oFn0JHPIiLjZuOBVuLRCBfPKc4D2/opGERExsn6/S1cOncqVRUTcwnOfFEwiIiMg55Eiq2H21hR5JuRQMEgIjIutjS2kUg5qxZMC7uUMVMwiIiMg/X7M2cAWrFAawwiIkJm4Pm8mZOpr4mHXcqYKRhERMYonXY27G8p+t1U+ykYRETGaHdTB+09SVaUwPgCKBhERMasf3xBawwiIgLAq3tbmDmlkvnTqsMuZVwoGERExiCddl56s4mrF8/ArHhPnJdNwSAiMgbbj7TT2pXg2sWlc0kABYOIyBisebMJgKsXzwi5kvGjYBARGYM1bzRx0dm1zJhcGXYp40bBICJyhjp6k7x2sJVrSmgzEigYRETO2Nq9J0iknGtLaDMSKBhERM7Yr95spqoiUhJnVM2mYBAROUNr3mjiynOmUxkr7usvDKZgEBE5A4dautjb3FlSu6n2UzCIiJyBl3Y3A3DtktIaXwAFg4jIGfnFzuPMnlrFuQ2Twy5l3CkYRERGqasvyZo3m7hx6aySOQ1GNgWDiMgovbiriZ5Empsunh12KXmhYBARGaWfbjvG9Jo4qxeVxvUXBlMwiIiMQk8ixQs73uLGi2YRjZTeZiRQMIiIjMpLbzbT2ZfiNy46K+xS8kbBICIyCj/ddowpVTHee27p7abaT8EgIpKjRCrNz3e8xQ0XziIeK90/n6XbMxGRcfbKnhO0dSe46eLS3YwECgYRkZz9dNsxquNRrl1SeqfByKZgEBHJQU8ixX9sOcINS2dRVVFaJ80bTMEgIpKDZ7cfo70nya0r54VdSt7lLRjM7CEzO25m20Zot8rMkmZ2S75qEREZq3/d0Mjc+klcec70sEvJu3yuMTwM3DRcAzOLAt8CfpbHOkRExuRQSxcv7W7m4yvmESnRg9qy5S0Y3H0N0DJCsz8Efgwcz1cdIiJj9djGRszgYyvmhF3KhAhtjMHM5gAfBe4PqwYRkZGk085jGxu5+rwZzK2vDrucCRHm4PPfAn/u7umRGprZXWa2wcw2NDU1TUBpIiIZL+85weGT3XyiDAad+8VCfO+VwKPBucxnADebWdLd/21wQ3d/AHgAYOXKlT6hVYpIWfvRhkNMnVTBDUtnhV3KhAktGNx9Uf+0mT0M/OR0oSAiEpa2rgTPbj/GJ1fNK/ljF7LlLRjM7IfAdcAMM2sE7gEqANz92/l6XxGR8fLkliP0JdN8fEX5bEaCPAaDu982irafyVcdIiJn6rENh7jgrClcPKc27FImlI58FhE5jTfeOsXmxjZuWTG3JK/rPBwFg4jIaTy2sZFYxPjo5eVx7EI2BYOIyCCJVJrHXzvMBy6YyfTJlWGXM+EUDCIig/xyVxPNHb3csmJu2KWEQsEgIjLIYxsbmTE5zvsvmBl2KaFQMIiIZEmnnZd2N3PjRWdRES3PP5Hl2WsRkSHsO9FJR2+Sy+bWhV1KaBQMIiJZth1uA+DiOVNDriQ8CgYRkSxbG9uIxyIsnjU57FJCo2AQEcmy9XAbF86uLdvxBVAwiIi8LZ12th9p55IyOwXGYAoGEZHA/mDg+ZIyHl8ABYOIyNu2auAZUDCIiLxt2+HMwPOSWVPCLiVUCgYRkcDWw21ceNaUsh54BgWDiAgQDDwfbi/7zUigYBARAeBgSxenNPAMKBhERAANPGdTMIiIEAw8RzXwDAoGEREgs8ZwwewpxGP6s6hPQETKXjrtbD3cps1IAQWDiJS9PU0dnOpJsnx+fdilFAQFg4iUvY0HWgFYPr98r8GQTcEgImXvtYOt1FdXsGhGTdilFAQFg4iUvY0HWlk+vx4zC7uUgqBgEJGydrKrjz1NnSxfoPGFfgoGESlrmw6eBNDAcxYFg4iUtY0HWolGjGXztKtqPwWDiJS1jQdaWTq7lup4LOxSCoaCQUTKVjKVZnPjSe2mOoiCQUTK1s5jp+jqS2ngeZCcg8HMrjazzwbTDWa2KH9liYjk36aD/Qe2KRiy5RQMZnYP8OfAV4NFFcA/j/Cch8zsuJltG+LxT5nZFjPbamYvm9my0RQuIjJWGw+0MnNKJXPrJ4VdSkHJdY3ho8CHgU4Adz8CjHRu2oeBm4Z5fB/wPne/BPhL4IEcaxERGRcbD7ayYoEObBss12Doc3cHHMDMRjxu3N3XAC3DPP6yu7cGs68Cc3OsRURkzN5q7+FQSzcrNL7wLrkGw7+Y2T8CdWb2+8DPge+MYx2fB3461INmdpeZbTCzDU1NTeP4tiJSrtbuy/zfunrRtJArKTw57bjr7n9tZjcA7cD5wDfc/bnxKMDM3k8mGK4e5v0fINjUtHLlSh+P9xWR8rZu3wkmV8ZYOrs27FIKTk7BEGw6esHdnzOz84HzzazC3RNjeXMzuxT4LvAhdz8xltcSERmNtXtbWLGgnlhUe+0PlusnsgaoNLM5wDPAHWQGl8+Ymc0HHgfucPc3xvJaIiKjcaKjlzePd2gz0hByPQbc3L3LzD4P3O/uf2Vmrw/7BLMfAtcBM8ysEbiHzG6uuPu3gW8A04H7gj0Cku6+8sy6ISKSu/X7M/u9XKFgOK2cg8HM3gN8isx4AEB0uCe4+20jPP4F4As5vr+IyLhZu+8ElbEIl87VqTBOJ9dNSV8B7gYed/ftwVHPL+SvLBGR/Fm3r4Xl8+uJxzS+cDq5fipdQBq4zcy2AE8C789bVSIiedLek+DXR9s1vjCMXDclfR/4U2AbmYAQESlKG/a34A5XnKNgGEquwdDk7k/ltRIRkQmwdl8LFVHj8nk64nkouQbDPWb2XeB5oLd/obs/npeqRETyZN2+Fi6dW8ek+LD7z5S1XIPhs8AFZHY37d+U5GSOQxARKQpdfUm2NrZx17XnhF1KQcs1GFa5+/l5rUREJM/W728lmXauOGd62KUUtFz3SnrZzJbmtRIRkTx7eU8zFVFj1UKNLwwn1zWGK4HXzWwfmTEGA9zdL81bZSIi4+yVPSe4fF491fFc//SVp1w/neEuuCMiUvDauhNsO9zGlz+wOOxSCl6up90+kO9CRETyad2+FtIO7z1X4wsj0fHgIlIWXt7TTGUswuXzdX6kkSgYRKQsvLLnBKsWTqMypuMXRqJgEJGS19zRy85jp3iPNiPlRMEgIiXv1b2ZC0RqfCE3CgYRKXkv78lc3/mSOVPDLqUoKBhEpOS9sucEqxdN0/Wdc6RPSURK2pGT3exr7tRmpFFQMIhISfvFruMAXLO4IeRKioeCQURK2gs7jjO3fhJLZk0Ou5SioWAQkZLV3Zfipd3NfPDCWZhZ2OUUDQWDiJSsV/Y205tM84ELZoZdSlFRMIhIyXp+x3Fq4lFd33mUFAwiUpLcnRd2HueaxQ06DcYoKRhEpCT9+mg7R9t6+MCF2ow0WgoGESlJL+w4jhm8/3wFw2gpGESkJD2/8zjL5tbRMKUy7FKKjoJBREpOc0cvmxtPcr32RjojCgYRKTnPbDuGO3xw6aywSylKCgYRKTlPbT7CeTMnc8FZU8IupSgpGESkpBxr62Hd/hY+vOxsHe18hhQMIlJSfrLlCO7w28vODruUopW3YDCzh8zsuJltG+JxM7O/M7PdZrbFzJbnqxYRKR9PbT7CJXOmsmhGTdilFK18rjE8DNw0zOMfAhYHt7uA+/NYi4iUgf3NnWxubOPDWlsYk7wFg7uvAVqGafIR4P95xqtAnZnNzlc9IlL6ntp8BIDfWqY/JWMR5hjDHOBQ1nxjsOxdzOwuM9tgZhuampompDgRKT5PbTnC6oXTmD11UtilFLWiGHx29wfcfaW7r2xo0FWYROTddh5r5423Ovjty7QZaazCDIbDwLys+bnBMhGRUXt03SHi0Qi/eYk2I41VmMHwJHBnsHfSlUCbux8NsR4RKVI9iRSPv9bITRefxbSaeNjlFL1Yvl7YzH4IXAfMMLNG4B6gAsDdvw08DdwM7Aa6gM/mqxYRKW0/2XKU9p4kt18xP+xSSkLegsHdbxvhcQf+IF/vLyLl4/trD3BuQw1XLNKV2sZDUQw+i4gMZcfRdjYdPMntVyzQKTDGiYJBRIraD9YeJB6L8LHlp93bXc6AgkFEilZnb5InNh3mty6ZTV21Bp3Hi4JBRIrWE5sO09GrQefxpmAQkaKUTKV5YM1els2dyooF9WGXU1IUDCJSlJ7edoyDLV188brzNOg8zhQMIlJ03J37X9zDOQ013KjLd447BYOIFJ1fvtHEjqPt/Nf3nUskorWF8aZgEJGic/+Le5g9tYrfuUy7qOaDgkFEisrGA62s3dfCF645h3hMf8LyQZ+qiBSVv/35G0yrifPJVfNGbixnRMEgIkXj5T3N/OrNZr503bnUVObtVG9lT8EgIkXB3bn32V3MnlrF7125IOxySpqCQUSKwvM7jrPp4Em+cv1iqiqiYZdT0hQMIlLw0mnnr3+2i0Uzarhlxdywyyl5CgYRKXhPbj7CzmOn+O83LCEW1Z+tfNMnLCIFrSeR4t5nd3HR2bW6nvMEUTCISEF78KV9HD7Zzdd/c6mOcp4gCgYRKVhNp3q57xe7uXHpLN5z7vSwyykbCgYRKVh/89wuepNpvnrzhWGXUlYUDCJSkHYcbedH6w9x53sWsmhGTdjllBUFg4gUnHTa+ca/b6N2UgVfuX5x2OWUHQWDiBSc7716gPX7W/n6by5lanVF2OWUHQWDiBSUQy1dfOuZnbxvSQMfW67TaodBwSAiBcPdufvxLRjwv373El2yMyQKBhEpGI+uP8R/7j7BV2++kDl1k8Iup2wpGESkIOw6dopvPrWd9547ndtXzw+7nLKmYBCR0HX0Jvni9zcyubKCv731Mh3hHDIFg4iEyt356uNb2d/cyf+97XJm1laFXVLZUzCISKi+9+oBntp8hD+58Xyd9qJAKBhEJDTP73iLbz71a66/YCZffN+5YZcjgbwGg5ndZGa7zGy3md19msfnm9kvzGyTmW0xs5vzWY+IFI5NB1v5gx+8xtLZtfzdbZdrXKGA5C0YzCwK/APwIWApcJuZLR3U7OvAv7j75cAngfvyVY+IFI59zZ18/pENzJxSxUOfWUVNZSzskiRLPtcYVgO73X2vu/cBjwIfGdTGgdpgeipwJI/1iEgBeKu9hzsfWgvAI59bTcOUypArksHyGdNzgENZ843AFYPa/A/gZ2b2h0AN8ME81iMiIWvt7OOOB9fS0tHH93//Sp01tUCFPfh8G/Cwu88Fbga+Z2bvqsnM7jKzDWa2oampacKLFJGx6+hN8pl/Wsf+E11859MruWxeXdglyRDyGQyHgXlZ83ODZdk+D/wLgLu/AlQBMwa/kLs/4O4r3X1lQ0NDnsoVkXzp6E3yhUfWs+1IO/9w+3Lee+67fs2lgOQzGNYDi81skZnFyQwuPzmozUHgegAzu5BMMGiVQKSEnOzq4/e+u5b1+1v5m08s44als8IuSUaQtzEGd0+a2ZeBZ4Eo8JC7bzezvwA2uPuTwJ8A3zGzPyYzEP0Zd/d81SQiE+t4ew93PLiOfc2d3P+p5dx40VlhlyQ5yOs+Yu7+NPD0oGXfyJr+NXBVPmsQkXC81d7Drf/4CsdP9fJPn13FVedp81Gx0M7DIjLumjt6uf07r9J0qpfvff4KViyoD7skGQUFg4iMq5Ndfdzx4DoOn+zmkc+uVigUobB3VxWREnKyq49PP7SOPcc7+M6dK7niHJ0UrxhpjUFExsXRtm7ufHAdB050cd+nlnPNYu1aXqwUDCIyZruPn+LOB9dxqifJI59brdNnFzkFg4iMyTPbjnL341uJRSI8+l+u5KKzp4ZdkoyRgkFEzkhbd4JvPrmdxzcd5uI5tfzD7ctZMF3nPioFCgYRGZWeRIrHNjby9y/spqmjl69cv5gvf+A8KqLal6VUlE0wHG3r5vWDJzEDM8OAiBmRCBj29vKIZZYbWfORzH1m3ohapn3/8yM2xOMRIxYJlkWC5RGIBvMRCx7XBUqkCLR29vHo+kM8+NI+mjt6WTavjn+8YwXLdDK8klM2wbDxQCtf/sGmsMsYUsTIhEcQIG9PRyLEgulYNLiPGLFIhFh00HQ0EswbFdEIFcGyimj/fKZdPJjubxOPvTMfj0WIRyNUxjLT79xHqYxFqKzImo5FiOm/xJLm7qzf38oP1h7g6W3H6Eumufq8GXzpust4z7nTMdM/NaWobILh2iUNPPNH15BOg+O4gzuk3Um742R+CdKDluOQdki5B487qfQ7bdPuA9qn3Umn35lPpSGVTpNKv9M+lXZS7qTTTrJ/+dvTwePBLZn24PmZ10mknVQqszyZTpNMZe77kmk6+1IkU+8sS6ScZCrznEQqTSL5zvR4nZEqFjGqKqJUBYFRVRFhUjzKpIooVRWZ+0nxKNXxd+ar41EmxWPUxKNUVwb38Rg1lZn7yZWZ6Zp4TGtTIXB3Nje28fTWo/zHlqMcPtnNlMoYn1w1j0+ums/Ss2tHfhEpamUTDLVVFdSeVRF2GQUjlXb6kmkS6Uxg9KXSJJJOXypFbzITNH3J9NvTvck0vcnU29M9iRQ9icyynkSanmQqWJaZ7+5LcaonSdOpXroTKbr6UvT0pehKpEilc0+lmniUyVWZsJhcVcGUyhhTqvpvFdRWVTClKkbtpApqg/upWbfqeFT/1eag6VQvr+49wYu7mljzZhNNp3qpiBrXLG7gT25cwocuns2keDTsMmWClE0wyEDRiGX+s2dif9ndnb5Ump6+NJ19Sbr6UnT1JensTdHZm6SzL0lHb5LO3iQdwbKOniSnehN09KY41ZPgWHsPp3oSnOrJPH84sYhlQqK6grpJFdRVx9++r6+uoK4mzrTqOPU1FUwLpuuq48RjpbuJrDeZ4o1jHWw93Mbrh1rZsL+Vvc2dAEydVME1i2fw/vNn8sELZzG1Wv9MlSMFg0woMwvGKKLj8kcnmUrT0ZukvTtJW3eC9p4Ebd3v3Nq7E5zsn+9K8FZ7D7uOneJkVx+dw4TKlMoY0ybHqa+OM70mTn1N5n5aMD2tOs60yf2hEqe2KlZQaybuTmtXgoMtXRxs6WJvUwe7j2due5o6SKQya21TJ1WwamE9n1g1j9WLprFsbh1Rbb4rewoGKWqxaCSzFlAdH/Vze5Mp2roStHT10dLZx8muBC2dfbR29r29rKWzj6NtPWw/0k5LZx99qfTp64gYddVxptVUUF8dZ+qkCuqqB27Wqg1uU4PNXlOCzWCTKkbe3OXu9CTSmTWl3iQnuxK0dWdqPtHRR3NHL00dvRxv7+VoWzfH2noGBJ8ZzKuvZvHMyVx3/kwumTOVi+fUMn9adUEFmhQGBYOUrcpYlJm1UWbWVuXU3t3p7EvR2tnHic4+WruCEAmmWzoTtHT20tqZ4MCJLrY0JjjZ3UdP4vRh0i8aMarjUSZXxpgUj2JkdoBIudPdl6I7h7GZeCzCjJo4s6ZWsWTWFK5d0sCcuknMn1bNguk1zJ9WrTECyZmCQSRHZpYZBK+MMW9adc7P602mBmzqag82bXX0JjnVkxlD6R9X6epLgb1zbExmL65YJjiCQfj+wfb+NZPpk+NMqSysTVlS3BQMInlWGYvSMCVKw5TKsEsRyUnp7nohIiJnRMEgIiIDKBhERGQABYOIiAygYBARkQEUDCIiMoCCQUREBlAwiIjIAObjdWL+CWJmTcCBCXq7GUDzBL1XvpVKX0qlH6C+FKpS6cvgfixw94Zcnlh0wTCRzGyDu68Mu47xUCp9KZV+gPpSqEqlL2PphzYliYjIAAoGEREZQMEwvAfCLmAclUpfSqUfoL4UqlLpyxn3Q2MMIiIygNYYRERkAAVDFjP7SzPbYmavm9nPzOzsIdp92szeDG6fnug6c2Fm95rZzqA/T5hZ3RDt9pvZ1qDPGya6zpGMoh83mdkuM9ttZndPdJ25MLOPm9l2M0ub2ZB7ixT6dwKj6ktBfy9mNs3Mngt+l58zs/oh2qWC7+N1M3tyousczkifsZlVmtmPgsfXmtnCEV/U3XULbkBt1vR/A759mjbTgL3BfX0wXR927aep80YgFkx/C/jWEO32AzPCrncs/QCiwB7gHCAObAaWhl37aeq8EDgfeBFYOUy7gv5Ocu1LMXwvwF8BdwfTdw/ze9IRdq1n+hkDX+r/WwZ8EvjRSK+rNYYs7t6eNVsDnG4A5jeA59y9xd1bgeeAmyaivtFw95+5ezKYfRWYG2Y9ZyrHfqwGdrv7XnfvAx4FPjJRNebK3Xe4+66w6xgPOfalGL6XjwCPBNOPAL8TYi1nIpfPOLuPjwHX2wjXgVUwDGJm/9PMDgGfAr5xmiZzgENZ843BskL2OeCnQzzmwM/MbKOZ3TWBNZ2JofpRjN/JcIrpOxlOMXwvs9z9aDB9DJg1RLsqM9tgZq+aWSGFRy6f8dttgn+y2oDpw71o2V3z2cx+Dpx1moe+5u7/7u5fA75mZl8FvgzcM6EFjsJIfQnafA1IAt8f4mWudvfDZjYTeM7Mdrr7mvxUfHrj1I+CkEtfchD6dwLj1pfQDdeP7Bl3dzMbajfNBcF3cg7wgpltdfc9411roSi7YHD3D+bY9PvA07w7GA4D12XNzyWznXXCjdQXM/sM8FvA9R5sYDzNaxwO7o+b2RNkVk0n9I/QOPTjMDAva35usGzCjeLna7jXCP07Cd5/rH0piO9luH6Y2VtmNtvdj5rZbOD4EK/R/53sNbMXgcvJbNsPWy6fcX+bRjOLAVOBE8O9qDYlZTGzxVmzHwF2nqbZs8CNZlYf7MFwY7CsoJjZTcCfAR92964h2tSY2ZT+aTJ92TZxVY4sl34A64HFZrbIzOJkBtgKas+RXBXDdzIKxfC9PAn071n4aeBda0LB73plMD0DuAr49YRVOLxcPuPsPt4CvDDUP4pvC3tUvZBuwI/J/BJuAZ4C5gTLVwLfzWr3OWB3cPts2HUP0ZfdZLYrvh7c+vdKOBt4Opg+h8xeDJuB7WQ2EYRe+2j7EczfDLxB5r+4gutHUONHyWwD7gXeAp4txu8k174Uw/dCZlv788CbwM+BacHyt3/ngfcCW4PvZCvw+bDrHtSHd33GwF+Q+WcKoAr41+B3aR1wzkivqSOfRURkAG1KEhGRARQMIiIygIJBREQGUDCIiMgACgYRERlAwSBlw8w6xvj8x4IjX4dr8+JwZxvNtc2g9g1m9kyu7UXGSsEgkgMzuwiIuvveiX5vd28CjprZVRP93lKeFAxSdizjXjPbFlz34NZgecTM7guu//CcmT1tZrcET/sUWUfFmtn9wUnVtpvZN4d4nw4z+z9Bm+fNrCHr4Y+b2Toze8PMrgnaLzSzX5nZa8HtvVnt/y2oQSTvFAxSjn4XuAxYBnwQuDc4T87vAguBpcAdwHuynnMVsDFr/mvuvhK4FHifmV16mvepATa4+0XALxl43q2Yu68G/ihr+XHgBndfDtwK/F1W+w3ANaPvqsjold1J9ESAq4EfunsKeMvMfgmsCpb/q7ungWNm9ous58wGmrLmPxGcEjsWPLaUzKlUsqWBHwXT/ww8nvVY//RGMmEEUAH8vZldBqSAJVntj5M53YRI3ikYRHLTTeacM5jZIuBPgVXu3mpmD/c/NoLs88/0Bvcp3vk9/GMy5x1aRmZtvierfVVQg0jeaVOSlKNfAbeaWTTY7n8tmZOL/SfwsWCsYRYDT6++AzgvmK4FOoG2oN2HhnifCJmzWQLcDrxHVhnGAAAA6ElEQVQ0Ql1TgaPBGssdZC7b2G8JxXuWVSkyWmOQcvQEmfGDzWT+i/8zdz9mZj8GridzSuVDwGtkrnYF8B9kguLn7r7ZzDaROS37ITKBcjqdwGoz+zqZTUG3jlDXfcCPzexO4Jng+f3eH9Qgknc6u6pIFjOb7O4dZjadzFrEVUFoTAJ+EcyncnytDnefPE51rQE+4pnrjIvkldYYRAb6iZnVAXHgL939GIC7d5vZPWSun3twIgsKNnf9jUJBJorWGEREZAANPouIyAAKBhERGUDBICIiAygYRERkAAWDiIgMoGAQEZEB/j9FAGhqImuzcgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "alpha is: 0.03579659209265841\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>coef_lasso</th>\n",
       "      <th>coef_ridge</th>\n",
       "      <th>columns</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.700903</td>\n",
       "      <td>[0.7294356695528048]</td>\n",
       "      <td>temptemp</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>[0.01369527013072247]</td>\n",
       "      <td>workingdayworkingday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-0.000000</td>\n",
       "      <td>[-0.008789941573944748]</td>\n",
       "      <td>humhum</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-0.139940</td>\n",
       "      <td>[-0.17127922154401531]</td>\n",
       "      <td>windspeedwindspeed</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-0.203276</td>\n",
       "      <td>[-0.22879597055068546]</td>\n",
       "      <td>weathersitweathersit</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   coef_lasso               coef_ridge               columns\n",
       "2    0.700903     [0.7294356695528048]              temptemp\n",
       "0    0.000000    [0.01369527013072247]  workingdayworkingday\n",
       "3   -0.000000  [-0.008789941573944748]                humhum\n",
       "4   -0.139940   [-0.17127922154401531]    windspeedwindspeed\n",
       "1   -0.203276   [-0.22879597055068546]  weathersitweathersit"
      ]
     },
     "execution_count": 140,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mses = np.mean(lasso.mse_path_, axis = 1)\n",
    "plt.plot(np.log10(lasso.alphas_), mses) \n",
    "#plt.plot(np.log10(lasso.alphas_)*np.ones(3), [0.3, 0.4, 1.0])\n",
    "plt.xlabel('log(alpha)')\n",
    "plt.ylabel('mse')\n",
    "plt.show()    \n",
    "            \n",
    "print ('alpha is:', lasso.alpha_)\n",
    "\n",
    "# 看看各特征的权重系数，系数的绝对值大小可视为该特征的重要性\n",
    "fs = pd.DataFrame({\"columns\":list(columns),  \"coef_ridge\":list((ridge.coef_.T)), \"coef_lasso\":list((lasso.coef_.T))})\n",
    "fs.sort_values(by=['coef_lasso'],ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
